<?php

class SupplierAction extends CommonAction{
public function index()
{
$page_idx = intval($_REQUEST['p'])==0?1:intval($_REQUEST['p']);
$page_size = C('PAGE_LISTROWS');
$limit = (($page_idx-1)*$page_size).','.$page_size;
if (isset ( $_REQUEST ['_order'] )) {
$order = $_REQUEST ['_order'];
}
if (isset ( $_REQUEST ['_sort'] )) {
$sort = $_REQUEST ['_sort'] ?'asc': 'desc';
}else {
$sort = $asc ?'asc': 'desc';
}
if($order!='sort')
{
$orderby = '';
}
else
{
$orderby = 'order by '.$order.' '.$sort;
}
if(trim($_REQUEST['name'])!='')
{
$total = $GLOBALS['db']->getOne('select count(*) from '.DB_PREFIX.'supplier');
if($total<50000)
{
$list = $GLOBALS['db']->getAll('select * from '.DB_PREFIX."supplier where name like '%".trim($_REQUEST['name'])."%'  $orderby limit ".$limit);
$total = $GLOBALS['db']->getOne('select count(*) from '.DB_PREFIX."supplier where name like '%".trim($_REQUEST['name'])."%'");
}
else
{
$kws_div = div_str(trim($_REQUEST['name']));
foreach($kws_div as $k=>$item)
{
$kw[$k] = str_to_unicode_string($item);
}
$kw_unicode = implode(' ',$kw);
$list = $GLOBALS['db']->getAll('select * from '.DB_PREFIX."supplier where match(`name_match`) against('".$kw_unicode."' IN BOOLEAN MODE)  $orderby limit ".$limit);
$total = $GLOBALS['db']->getOne('select * from '.DB_PREFIX."supplier where match(`name_match`) against('".$kw_unicode."' IN BOOLEAN MODE)");
}
}
else
{
$list= $GLOBALS['db']->getAll('select * from '.DB_PREFIX."supplier  $orderby limit ".$limit);
$total = $GLOBALS['db']->getOne('select count(*) from '.DB_PREFIX.'supplier');
}
$p = new Page ( $total,'');
$page = $p->show ();
$sortImg = $sort;
$sortAlt = $sort == 'desc'?l('ASC_SORT') : l('DESC_SORT');
$sort = $sort == 'desc'?1 : 0;
$this->assign ( 'sort',$sort );
$this->assign ( 'order',$order );
$this->assign ( 'sortImg',$sortImg );
$this->assign ( 'sortType',$sortAlt );
$this->assign ( 'list',$list );
$this->assign ( 'page',$page );
$this->assign ( 'nowPage',$p->nowPage);
$this->display ();
return;
}
public function add()
{
$this->assign('new_sort',M(MODULE_NAME)->max('sort')+1);
$this->display();
}
public function edit() {
$id = intval($_REQUEST ['id']);
$condition['id'] = $id;
$vo = M(MODULE_NAME)->where($condition)->find();
$this->assign ( 'vo',$vo );
$this->display ();
}
public function foreverdelete() {
$ajax = intval($_REQUEST['ajax']);
$id = $_REQUEST ['id'];
if (isset ( $id )) {
$condition = array ('id'=>array ('in',explode ( ',',$id ) ) );
$rel_data = M(MODULE_NAME)->where($condition)->findAll();
foreach($rel_data as $data)
{
$info[] = $data['name'];
}
if($info) $info = implode(',',$info);
if(M('deal')->where(array ('supplier_id'=>array ('in',explode ( ',',$id ) )))->count()>0)
{
$this->error (l('SUB_DEAL_EXIST'),$ajax);
}
if(M('SupplierLocation')->where(array ('supplier_id'=>array ('in',explode ( ',',$id ) )))->count()>0)
{
$this->error ('请先清空所有的分店数据',$ajax);
}
if(M('SupplierAccount')->where(array ('supplier_id'=>array ('in',explode ( ',',$id ) )))->count()>0)
{
$this->error ('请先清空所有的管理员帐户',$ajax);
}
$list = M(MODULE_NAME)->where ( $condition )->delete();
if ($list!==false) {
save_log($info.l('FOREVER_DELETE_SUCCESS'),1);
$this->success (l('FOREVER_DELETE_SUCCESS'),$ajax);
}else {
save_log($info.l('FOREVER_DELETE_FAILED'),0);
$this->error (l('FOREVER_DELETE_FAILED'),$ajax);
}
}else {
$this->error (l('INVALID_OPERATION'),$ajax);
}
}
public function insert() {
B('FilterString');
$ajax = intval($_REQUEST['ajax']);
$data = M(MODULE_NAME)->create ();
$this->assign('jumpUrl',u(MODULE_NAME.'/add'));
if(!check_empty($data['name']))
{
$this->error(L('SUPPLIER_NAME_EMPTY_TIP'));
}
$log_info = $data['name'];
$list=M(MODULE_NAME)->add($data);
if (false !== $list) {
syn_supplier_match($list);
save_log($log_info.L('INSERT_SUCCESS'),1);
$this->success(L('INSERT_SUCCESS'));
}else {
save_log($log_info.L('INSERT_FAILED'),0);
$this->error(L('INSERT_FAILED'));
}
}
public function update() {
B('FilterString');
$data = M(MODULE_NAME)->create ();
$log_info = M(MODULE_NAME)->where('id='.intval($data['id']))->getField('name');
$this->assign('jumpUrl',u(MODULE_NAME.'/edit',array('id'=>$data['id'])));
if(!check_empty($data['name']))
{
$this->error(L('SUPPLIER_NAME_EMPTY_TIP'));
}
$list=M(MODULE_NAME)->save ($data);
if (false !== $list) {
syn_supplier_match($data['id']);
save_log($log_info.L('UPDATE_SUCCESS'),1);
$this->success(L('UPDATE_SUCCESS'));
}else {
save_log($log_info.L('UPDATE_FAILED'),0);
$this->error(L('UPDATE_FAILED'),0,$log_info.L('UPDATE_FAILED'));
}
}
public function set_sort()
{
$id = intval($_REQUEST['id']);
$sort = intval($_REQUEST['sort']);
$log_info = M(MODULE_NAME)->where('id='.$id)->getField('name');
if(!check_sort($sort))
{
$this->error(l('SORT_FAILED'),1);
}
M(MODULE_NAME)->where('id='.$id)->setField('sort',$sort);
save_log($log_info.l('SORT_SUCCESS'),1);
$this->success(l('SORT_SUCCESS'),1);
}
public function set_effect()
{
$id = intval($_REQUEST['id']);
$ajax = intval($_REQUEST['ajax']);
$info = M(MODULE_NAME)->where('id='.$id)->getField('name');
$c_is_effect = M(MODULE_NAME)->where('id='.$id)->getField('is_effect');
$n_is_effect = $c_is_effect == 0 ?1 : 0;
M(MODULE_NAME)->where('id='.$id)->setField('is_effect',$n_is_effect);
save_log($info.l('SET_EFFECT_'.$n_is_effect),1);
$this->ajaxReturn($n_is_effect,l('SET_EFFECT_'.$n_is_effect),1)	;
}
}

?>